package vista;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

import modelo.ProductoDTO;
import controlador.Supermercado;

public class vNuevaVenta extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel panel;
	private JLabel lblCodProd;
	private JTextField txtCodProd;
	private JLabel lblDescripcion;
	private JTextField txtDescripcion;
	private JLabel lblCantidad;
	private JTextField txtCantidad;
	private JButton btnBuscar;
	private JButton btnAceptar;
	private JButton btnCancelar;
	private Supermercado supermercado;

	public vNuevaVenta(Supermercado superm) {
		setSupermercado(superm);
		cargarVentana();
	}

	private void cargarVentana() {
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		setSize(400, 400);
		panel = new JPanel();
		panel.setBounds(getBounds());
		lblCodProd = new JLabel("Codigo Producto");
		lblCodProd.setBounds(20, 30, 80, 25);
		panel.add(lblCodProd);
		txtCodProd = new JTextField();
		txtCodProd.setBounds(105, 30, 50, 25);
		panel.add(txtCodProd);
		btnBuscar = new JButton("Buscar");
		btnBuscar.setBounds(160, 30, 90, 25);
		panel.add(btnBuscar);
		lblDescripcion = new JLabel("Descripcion");
		lblDescripcion.setBounds(20, 60, 80, 25);
		panel.add(lblDescripcion);
		txtDescripcion = new JTextField();
		txtDescripcion.setBounds(105, 60, 100, 25);
		txtDescripcion.setEnabled(false);
		panel.add(txtDescripcion);
		lblCantidad = new JLabel("Cantidad");
		lblCantidad.setBounds(20, 90, 80, 25);
		panel.add(lblCantidad);
		txtCantidad = new JTextField();
		txtCantidad.setBounds(105, 90, 50, 25);
		panel.add(txtCantidad);

		btnAceptar = new JButton("Aceptar");
		btnAceptar.setBounds(150, 350, 90, 25);
		panel.add(btnAceptar);
		btnCancelar = new JButton("Cancelar");
		btnCancelar.setBounds(250, 350, 90, 25);
		panel.add(btnCancelar);

		setContentPane(panel);
		panel.setLayout(null);

		btnBuscar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				ProductoDTO pDTO = supermercado.buscarProductoXcodigo(
						Float.parseFloat(txtCodProd.getText()))
						.crearProductoDTO();
				txtDescripcion.setText(pDTO.getDescripcion());
			}
		});

		btnAceptar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				if (!txtCantidad.getText().isEmpty()) {
					if (supermercado.ingresarItemToFactura(supermercado
							.buscarProductoXcodigo(Float.parseFloat(txtCodProd
									.getText())), Integer.parseInt(txtCantidad
							.getText()))) {
						JOptionPane.showMessageDialog(null,
								"Producto Agregado a la Venta", "Exito",
								JOptionPane.INFORMATION_MESSAGE);
					}else{
						JOptionPane.showMessageDialog(null,
								"No hay Stock Suficiente", "Error",
								JOptionPane.ERROR_MESSAGE);
					}
				} else {
					JOptionPane.showMessageDialog(null,
							"Debe ingresar Cantidad", "Error",
							JOptionPane.ERROR_MESSAGE);
				}
			}
		});
		
		btnCancelar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				setVisible(false);
			}
		});
	}

	public Supermercado getSupermercado() {
		return supermercado;
	}

	public void setSupermercado(Supermercado supermercado) {
		this.supermercado = supermercado;
	}
}
